package com.example.demo2_review.design_pattern.creational_patterns.singleton_pattern;

import cn.hutool.core.bean.BeanUtil;

/**
 * @Author zwp14
 * @create 2024/6/24 18:39
 * @description 单例模式-懒加载
 * 延迟实例化，只在第一次调用getInstance()方法时创建实例。
 * 但是在多线程环境下，可能会出现并发问题，需要使用synchronized关键字保证线程安全。
 *
 *
 * 单例模式确保一个类只有一个实例，并提供一个全局访问点。
 *
 * 应用场景：
 * 当需要控制一个类的实例只能有一个，并且可以全局访问时。
 * 当希望避免每次实例化时创建多个实例时。
 */
public class LazySingleton {
    private static LazySingleton instance;

    public static synchronized LazySingleton getInstance(){
        if (BeanUtil.isEmpty(instance)){
            instance = new LazySingleton();
        }
        return instance;
    }
}
